home *** CD-ROM | disk | FTP | other *** search
/ Light ROM 1 / LIGHT-ROM 1 (Amiga Library Services)(1994).iso / ffdisks / d931.lha / Modules / IntuitionSupport / IntuitionDemoII.mod / IntuitionDemoII.mod
Text File  |  1993-12-20  |  7KB  |  190 lines

  1. MODULE IntuitionDemoII;
  2.  
  3. (* Dieses Demo veranschaulicht die Benutzung der Menuroutinen aus dem *)
  4. (* Modul IntuitionSupport. Auf diesem Demo liegt kein Copyright!      *)
  5.  
  6. FROM SYSTEM           IMPORT ADR,ASSEMBLE;
  7. FROM IntuitionSupport IMPORT CreateSimpleScreen,CreateSimpleWindow,enabled,
  8.                              AddTextMenuItem,AddTextSubItem,AddMenu,FreeMenu,
  9.                              InstallMenu,InitMenu,AddPropGadget,ItemFlagSet,
  10.                              PropGadgetFlagSet,MenuHandlePtr,none,ItemFlags,
  11.                              DeleteWindow,DeleteScreen,WaitForPossibleAction,
  12.                              MessageType,GetMenuSelection,stdFont,stdHeight,
  13.                              AddBarMenuItem,AddBarSubItem,AddImageSubItem,
  14.                              GetImage,GetColorImage,StartNewColumn,SetXOffset,
  15.                              SetDefaultAdditionalWidth,SetDefaultMenuFont,
  16.                              SetMenuFont,StartMutualExclude,EndMutualExclude,
  17.                              SetDefaultHeight;
  18. FROM Conversions      IMPORT ValToStr;
  19. FROM IntuitionD       IMPORT ScreenPtr,WindowPtr,IDCMPFlagSet,IDCMPFlags,
  20.                              WindowFlags,WindowFlagSet,ImagePtr;
  21. FROM GraphicsD        IMPORT FontStyleSet,FontStyles,RastPortPtr;
  22. FROM GraphicsL        IMPORT SetAPen,Move,Text,Draw;
  23. FROM GfxMacros        IMPORT SetDrPt;
  24.  
  25.  
  26.  
  27. PROCEDURE WriteNumbers(rp       : RastPortPtr;
  28.                        n1,n2,n3 : INTEGER);
  29. VAR str : ARRAY[0..7] OF CHAR;
  30.     err : BOOLEAN;
  31. BEGIN
  32.   ValToStr(n1,TRUE,str,10,3,' ',err);
  33.   Text(rp,ADR(str),3);
  34.   Text(rp,ADR(", "),1);
  35.   ValToStr(n2,TRUE,str,10,3,' ',err);
  36.   Text(rp,ADR(str),3);
  37.   Text(rp,ADR(", "),1);
  38.   ValToStr(n3,TRUE,str,10,3,' ',err);
  39.   Text(rp,ADR(str),3);
  40. END WriteNumbers;
  41.  
  42.  
  43.  
  44. (*$ EntryExitCode:=FALSE *)
  45. PROCEDURE LinePatterns;
  46. BEGIN
  47.   ASSEMBLE(
  48.     DC.W %1111111111111111
  49.     DC.W %1010101010101010
  50.     DC.W %1111001111001111
  51.     DC.W %1111000011110000
  52.     DC.W %1100100110010011
  53.   END);
  54. END LinePatterns;
  55.  
  56.  
  57.  
  58. VAR scr : ScreenPtr;
  59.     win : WindowPtr;
  60.     rp  : RastPortPtr;
  61.     m   : MenuHandlePtr;
  62.     end : BOOLEAN;
  63.     mt  : MessageType;
  64.     t   : INTEGER;
  65.     pt  : POINTER TO ARRAY[0..4] OF CARDINAL;
  66.     lim : ARRAY[0..4] OF ImagePtr;
  67.     im,sim      : ARRAY[0..15] OF ImagePtr;
  68.     idcmp       : IDCMPFlagSet;
  69.     mnr,inr,snr : INTEGER;
  70.  
  71. BEGIN
  72.   pt:=ADR(LinePatterns);
  73.  
  74.   scr:=CreateSimpleScreen(640,256,4,
  75.      ADR("MenuDemo  IntuitionSupport © 1992 by Andre Wiethoff"),2);
  76.  
  77.   IF scr#NIL THEN
  78.     rp:=ADR(scr^.rastPort);
  79.     FOR t:=0 TO 4 DO
  80.       SetDrPt(rp,pt^[t]);
  81.       Move(rp,0,20);
  82.       Draw(rp,40,20);
  83.       lim[t]:=GetImage(rp,0,20,32,1,0,0,NIL);
  84.     END;
  85.     SetDrPt(rp,65535);
  86.  
  87.     win:=CreateSimpleWindow(0,0,640,256,NIL,
  88.                             WindowFlagSet{activate,borderless,backDrop},scr);
  89.  
  90.     IF win#NIL THEN
  91.       m:=InitMenu(win,stdFont,stdHeight,FontStyleSet{});
  92.       IF m#NIL THEN
  93.  
  94.         AddMenu(m,"Project",enabled);
  95.           AddTextMenuItem(m,"Info",none,"I",ItemFlagSet{invert});
  96.           AddBarMenuItem(m);
  97.           AddTextMenuItem(m,"Load",none,none,ItemFlagSet{invert});
  98.             AddTextSubItem(m,"All",none,"A",ItemFlagSet{invert});
  99.             AddBarSubItem(m);
  100.             AddTextSubItem(m,"Graphics",none,"G",ItemFlagSet{invert});
  101.             AddTextSubItem(m,"Texts",none,"T",ItemFlagSet{invert});
  102.           AddTextMenuItem(m,"Save All",none,"S",ItemFlagSet{invert});
  103.           AddTextMenuItem(m,"Print",none,"P",ItemFlagSet{invert});
  104.           AddBarMenuItem(m);
  105.           AddTextMenuItem(m,"Quit   ","Really?","Q",ItemFlagSet{});
  106.         AddMenu(m,"Edit",enabled);
  107.           AddTextMenuItem(m,"Cut",none,"X",ItemFlagSet{box});
  108.           AddTextMenuItem(m,"Copy",none,"C",ItemFlagSet{box});
  109.           AddTextMenuItem(m,"Insert",none,"V",ItemFlagSet{box});
  110.           AddBarMenuItem(m);
  111.           AddTextMenuItem(m,"Erase",none,"E",ItemFlagSet{box});
  112.         AddMenu(m,"Fonts",enabled);
  113.           StartMutualExclude(m);
  114.             IF SetMenuFont(m,"topaz",8,FontStyleSet{}) THEN END;
  115.             AddTextMenuItem(m,"Topaz 8",none,none,ItemFlagSet{checkset,invert});
  116.             IF SetMenuFont(m,"topaz",9,FontStyleSet{}) THEN END;
  117.             AddTextMenuItem(m,"Topaz 9",none,none,ItemFlagSet{checkit,invert});
  118.             IF SetMenuFont(m,"ruby",15,FontStyleSet{}) THEN END;  (* Sorry! *)
  119.             AddTextMenuItem(m,"Ruby 15",none,none,ItemFlagSet{checkit,invert});
  120.             IF SetMenuFont(m,"sapphire",19,FontStyleSet{}) THEN END;
  121.             AddTextMenuItem(m,"Sapphire 19",none,none,ItemFlagSet{checkit,invert});
  122.           EndMutualExclude(m);
  123.           SetDefaultMenuFont(m);
  124.           AddTextMenuItem(m,"...",none,none,ItemFlagSet{disable});
  125.           AddBarMenuItem(m);
  126.           IF SetMenuFont(m,stdFont,stdHeight,FontStyleSet{underlined}) THEN END;
  127.           AddTextMenuItem(m,"Underlined",none,none,ItemFlagSet{checkit,invert});
  128.           IF SetMenuFont(m,stdFont,stdHeight,FontStyleSet{bold}) THEN END;
  129.           AddTextMenuItem(m,"Bold",none,none,ItemFlagSet{checkit,invert});
  130.           IF SetMenuFont(m,stdFont,stdHeight,FontStyleSet{italic}) THEN END;
  131.           AddTextMenuItem(m,"Italic",none,none,ItemFlagSet{checkset,invert});
  132.           SetDefaultMenuFont(m);
  133.         AddMenu(m,"Draw",enabled);
  134.           AddTextMenuItem(m,"Colors",none,none,ItemFlagSet{box});
  135.           SetDefaultAdditionalWidth(m,4);
  136.           SetXOffset(m,2);
  137.           FOR t:=0 TO 15 DO
  138.             im[t]:=GetColorImage(20,10,0,0,t,NIL);
  139.             sim[t]:=GetImage(ADR(scr^.rastPort),t*20,0,20,10,0,0,NIL);
  140.             AddImageSubItem(m,im[t],sim[t],none,ItemFlagSet{});
  141.             IF t MOD 4=3 THEN
  142.               StartNewColumn(m);
  143.             END;
  144.           END;
  145.           AddTextMenuItem(m,"Line Style",none,none,ItemFlagSet{box});
  146.           SetDefaultHeight(m,4);
  147.           FOR t:=0 TO 4 DO
  148.             AddImageSubItem(m,lim[t],NIL,none,ItemFlagSet{invert});
  149.           END;
  150.           SetDefaultAdditionalWidth(m,24);
  151.           SetDefaultHeight(m,2);
  152.           SetXOffset(m,0);
  153.           AddBarMenuItem(m);
  154.           StartMutualExclude(m);
  155.             AddTextMenuItem(m,"Draw",none,'D',ItemFlagSet{checkset,invert});
  156.             AddTextMenuItem(m,"Line",none,'L',ItemFlagSet{checkit,invert});
  157.             AddTextMenuItem(m,"Fill",none,'F',ItemFlagSet{checkit,invert});
  158.           EndMutualExclude(m);
  159.  
  160.         SetAPen(rp,1);
  161.         Move(rp,10,130);
  162.         Text(rp,ADR("Angewähltes Menu : "),19);
  163.         IF InstallMenu(m) THEN
  164.           end:=FALSE;
  165.           REPEAT
  166.             mt:=WaitForPossibleAction(win,idcmp);
  167.             CASE mt OF
  168.             |menuSelected   : GetMenuSelection(win,mnr,inr,snr);
  169.                               Move(rp,162,130);
  170.                               WriteNumbers(rp,mnr,inr,snr);
  171.                               IF (mnr=0) AND (inr=6) THEN
  172.                                 end:=TRUE;
  173.                               END;
  174.             ELSE
  175.             END;
  176.           UNTIL end;
  177.         END;
  178.       END;
  179.     END;
  180.   END;
  181.  
  182. CLOSE
  183.  
  184.   FreeMenu(m);
  185.   DeleteWindow(win);
  186.   DeleteScreen(scr);
  187.  
  188. END IntuitionDemoII.
  189.  
  190.